﻿//==========================================================
//Đã sửa bởi tranninh_86_yb@yahoo.com ngày 21/06/2013
//==========================================================

using System;
//using System.Collections.Generic;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient;

using prjKQXS_UI.Danh_muc;
using prjKQXS_DLL;
using prjKQXS_DLL.Dal;
using prjKQXS_DLL.Bean;
using prjKQXS_DLL.Danh_muc;

namespace prjKQXS_UI.View
{
    public partial class frmDSDLTC1 : DevExpress.XtraEditors.XtraForm
    {
        #region frmDSDLTC1
        public frmDSDLTC1()
        {
            InitializeComponent();
        }

        private void frmHOPDONG_Load(object sender, EventArgs e)
        {
            loadLue("DMTINHTRANG");
            loadLue("DMLOAIVE");
            loadLue("DMLOAIHOPDONG");
            loadLueDonVi();
            //if (BienTc.isThanhPho == true || BienTc.isQuanHuyen == true)
            //{
            //    btnChuyen.Text = "Cập nhật";
            //}
            //else
            //{
            //    btnChuyen.Text = "Chuyển";
            //}
        }
        #endregion


        private void loadLueDonVi()
        {
            SqlConnection conn = new SqlConnection(BienTc.connstring);
            DataTable dt = new DataTable();
            try
            {
                SqlDataAdapter da = new SqlDataAdapter("select Ten_DT as TEN, * from DMDONVI where isPublic = 1", conn);
                da.Fill(dt);
                DataRow dr = dt.NewRow();
                dr["TEN"] = "Công ty";
                dr["Ma_DT"] = "TC";
                dr["Ten_DT"] = "Công ty";
                dt.Rows.InsertAt(dr, 0);
                lueNhomDT.Properties.DataSource = dt;
                if (BienTc.isQuanHuyen || BienTc.isThanhPho)
                {
                    lueNhomDT.ItemIndex = lueNhomDT.Properties.GetDataSourceRowIndex("Ma_DT", BienTc.ma_huyen);
                    lueNhomDT.Properties.ReadOnly = true;
                }
                else
                {
                    lueNhomDT.ItemIndex = 0;
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }
        public void loadLue(string tableName)
        {
            SqlConnection conn = new SqlConnection(BienTc.connstring);
            DataTable dt = new DataTable();
            try
            {
                SqlDataAdapter da = new SqlDataAdapter("select * from " + tableName + " where isPublic = 1", conn);
                da.Fill(dt);
                if (tableName == "DMTINHTRANG")
                {
                    lueTinhTrang.DataSource = dt;
                }
                else if (tableName == "DMLOAIVE")
                {
                    lueLoaiVe.DataSource = dt;
                }
                else if (tableName == "DMLOAIHOPDONG")
                {
                    lueLoaiHD.DataSource = dt;
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }

        private HOPDONG_DAL hopdong_dal = new HOPDONG_DAL();
        private void loadData()
        {
            int Thanh_ly = rgThanhly.SelectedIndex;
            try
            {
                if (lueNhomDT.GetColumnValue("Ma_DT").ToString() != "TC" && lueCanBo.GetColumnValue("Ma_DT").ToString() == "TC")
                {
                    gcDonVi.DataSource = hopdong_dal.loadAllHopDong2_Cap1(lueNhomDT.GetColumnValue("Ma_DT").ToString(), !chkKhoiPhuc.Checked, Thanh_ly,false);
                }
                else
                {
                    gcDonVi.DataSource = hopdong_dal.loadAllHopDong_Cap1(lueCanBo.GetColumnValue("Ma_DT").ToString(), !chkKhoiPhuc.Checked, Thanh_ly,false);
                }
            }
            catch (Exception)
            {

            }

        }

        private void loadDatabyDaiLy()
        {
            int Thanh_ly = rgThanhly.SelectedIndex;
            try
            {
                if (lueNhomDT.GetColumnValue("Ma_DT").ToString() != "TC" && lueCanBo.GetColumnValue("Ma_DT").ToString() == "TC")
                {
                    gcDonVi.DataSource = hopdong_dal.loadAllHopDong2_Cap1(lueNhomDT.GetColumnValue("Ma_DT").ToString(), !chkKhoiPhuc.Checked, Thanh_ly,false);
                }
                else
                {
                    gcDonVi.DataSource = hopdong_dal.loadAllHopDong_Cap1(lueCanBo.GetColumnValue("Ma_DT").ToString(), !chkKhoiPhuc.Checked, Thanh_ly,false);
                }
            }
            catch (Exception)
            {

            }

        }

        private void lueCanBo_EditValueChanged(object sender, EventArgs e)
        {
            loadDatabyDaiLy();
        }
        private void loadLueCanBo()
        {
            SqlConnection conn = new SqlConnection(BienTc.connstring);
            DataTable dt = new DataTable();
            try
            {
                string Ma_DMDonVi = lueNhomDT.GetColumnValue("Ma_DT").ToString();
                string sql = "";
                if (Ma_DMDonVi == "TC")
                {
                    sql = "select Ma_DT + ' - ' + Ten_DT as TEN, * from DMCANBO where isPublic = 1";
                }
                else
                {
                    sql = "select Ma_DT + ' - ' + Ten_DT as TEN, * from DMCANBO where isPublic = 1 and Ma_DMDonVi = @Ma";
                }
                SqlDataAdapter da = new SqlDataAdapter(sql, conn);
                if (Ma_DMDonVi != "TC")
                {
                    da.SelectCommand.Parameters.AddWithValue("@Ma", Ma_DMDonVi);
                }
                da.Fill(dt);
                DataRow dr = dt.NewRow();
                dr["TEN"] = "Tất cả";
                dr["Ma_DT"] = "TC";
                dr["Ten_DT"] = "Tất cả";
                dt.Rows.InsertAt(dr, 0);
                lueCanBo.Properties.DataSource = dt;
                lueCanBo.ItemIndex = 0;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }
        private void lueNhomDT_EditValueChanged(object sender, EventArgs e)
        {
            loadLueCanBo();
            if (lueNhomDT.ItemIndex == 0)
            {
                lueCanBo.Properties.ReadOnly = true;
            }
            else
            {
                lueCanBo.Properties.ReadOnly = false;
            }
            loadDatabyDaiLy();
        }

        private void sbtnThemNhom_Click(object sender, EventArgs e)
        {
            frmDMDONVI frm = new frmDMDONVI();
            frm.ShowDialog();
            loadLueDonVi();
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            frmDMCanBo frm = new frmDMCanBo();
            frm.ShowDialog();
            loadLueCanBo();
        }
        private bool validate()
        {
            bool retVal = true;
            if (lueNhomDT.GetColumnValue("Ma_DT").ToString() == "TC")
            {
                clsCommon.thongBao("Phải chọn đơn vị trước khi thêm mới !", 0);
                retVal = false;
                lueNhomDT.Focus();
            }
            else if (lueCanBo.GetColumnValue("Ma_DT").ToString() == "TC")
            {
                clsCommon.thongBao("Phải chọn cán bộ trước khi thêm mới !", 0);
                retVal = false;
                lueCanBo.Focus();
            }
            //if (gvDonVi.RowCount > 0)
            //{
            //    string ma_daiLy = gvDonVi.GetFocusedDataRow()["Ma_DaiLy"].ToString();
            //    string macanbo = "";
            //    string madonvi = "";

            //    object o = clsCommon.getCellValue("HOPDONG", "Ma_DMCanBo", "Where id=" + gvDonVi.GetFocusedDataRow()["ID"].ToString());
            //    macanbo = o.ToString();
            //    object o2 = clsCommon.getCellValue("DMCanBo", "Ma_DMDonVi", "Where Ma_DT='" + macanbo + "'");
            //    madonvi = o2.ToString();
            //    if (ma_daiLy.Trim().Length == 0)
            //    {
            //        clsCommon.thongBao("Mã đại lý không được để trống !", 0);
            //        retVal = false;
            //    }
            //    else if (!ma_daiLy.Trim().StartsWith(macanbo))
            //    {
            //        clsCommon.thongBao("Mã đại lý phải bắt đầu bằng " + macanbo, 0);
            //        isEdit = true;
            //        //gvDonVi.SetRowCellValue(e.RowHandle, "Ma_DaiLy", "");
            //        loadData();
            //        retVal = false;
            //        isEdit = false;
            //    }                
            //}

            return retVal;
        }

        bool isthemmoi = false;

        int dem = 0;
        private void btnThem_Click(object sender, EventArgs e)
        {
            bool themmoi = true;
            dem++;
            isthemmoi = true;
            if (!chkKhoiPhuc.Checked)
            {
                if (gcDonVi.DataSource != null)
                {
                    if (gvDonVi.RowCount > 0)
                    {
                        //isthemmoi = true;
                        if (gvDonVi.GetFocusedDataRow()["Ma_DaiLy"].ToString().Trim() == "" || gvDonVi.GetFocusedDataRow()["CMT"].ToString().Trim() == "")
                        {
                            themmoi = false;
                            if (gvDonVi.GetFocusedDataRow()["Ma_DaiLy"].ToString().Trim() == "")
                            {
                                clsCommon.thongBao("Mã đại lý không được để trống!", 0);
                            }
                            else if (gvDonVi.GetFocusedDataRow()["CMT"].ToString().Trim() == "")
                            {
                                clsCommon.thongBao("CMND không được để trống!", 0);
                            }
                        }
                        else
                        {
                            themmoi = true;
                        }
                    }
                }
                if (themmoi)
                {
                    if (validate())
                    {
                        clsHopDong hopdong = new clsHopDong();
                        hopdong.isPublic = true;
                        hopdong.Ma_DMCanBo = lueCanBo.GetColumnValue("Ma_DT").ToString();
                        //hopdong.Ma_DT = "Hợp đồng thêm mới";
                        hopdong.Ma_DT = clsCommon.laymadt("HOPDONG", "Ma_DT", 1);
                        hopdong.Ten_CanBo = lueCanBo.GetColumnValue("Ten_DT").ToString();
                        hopdong.isCapBac = false;
                        hopdong_dal.insertHOPDONG(hopdong);
                        loadData();
                        gvDonVi.FocusedRowHandle = ((DataTable)gcDonVi.DataSource).Rows.Count - 1;
                    }
                }
            }
            else
            {
                if (gcDonVi.DataSource != null && ((DataTable)gcDonVi.DataSource).Rows.Count > 0)
                {
                    if (clsCommon.thongBao("Khôi phục dòng này ?", 2) == System.Windows.Forms.DialogResult.Yes)
                    {
                        object o = clsCommon.getCellValue("HOPDONG", "Ma_DT", "Where ID=" + gvDonVi.GetFocusedDataRow()["ID"].ToString());
                        string Ma_HD = o.ToString();
                        clsCommon.deleteRestoreRow("DoanhThu", "Where Ma_HopDong = " + Ma_HD);
                        clsCommon.deleteRestoreRow("HOPDONG", "Where ID = " + gvDonVi.GetFocusedDataRow()["ID"].ToString());
                    }
                    loadData();
                }
            }
            //isthemmoi = false;
        }
        private void enableControl(bool state)
        {
            btnThem.Enabled = state;
            btnXoa.Enabled = state;
            chkKhoiPhuc.Enabled = state;
            //btnIn.Enabled = state;
        }
        private void btnSua_CheckedChanged(object sender, EventArgs e)
        {
            if (btnSua.Checked)
            {
                btnSua.Text = "Khóa";
                enableControl(true);
                gvDonVi.OptionsBehavior.Editable = true;
                //gridColumn1.OptionsColumn.AllowEdit = false;
                //gridColumn10.OptionsColumn.AllowEdit = false;
                //gridColumn19.OptionsColumn.AllowEdit = false;
                //gridColumn2.OptionsColumn.AllowEdit = false;
                //gridColumn4.OptionsColumn.AllowEdit = false;                
                gridColumn3.OptionsColumn.AllowEdit = true;
                gridColumn5.OptionsColumn.AllowEdit = true;
                gridColumn11.OptionsColumn.AllowEdit = true;
            }
            else
            {
                btnSua.Text = "Sửa";
                gvDonVi.OptionsBehavior.Editable = false;
                chkKhoiPhuc.Checked = false;
                enableControl(false);
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            try
            {
                if (chkKhoiPhuc.Checked)
                {
                    if (gcDonVi.DataSource != null && ((DataTable)gcDonVi.DataSource).Rows.Count > 0)
                    {
                        if (clsCommon.thongBao("Ở chế độ khôi phục sẽ bị xóa hoàn toàn khỏi hệ thống, bạn có chắc chắn xóa dòng này ?", 2) == System.Windows.Forms.DialogResult.Yes)
                        {
                            object o = clsCommon.getCellValue("HOPDONG", "Ma_DT", "Where ID=" + gvDonVi.GetFocusedDataRow()["ID"].ToString());
                            string Ma_HD = o.ToString();
                            clsCommon.ExecuteQuery("delete DoanhThu where Ma_HopDong = '" + Ma_HD + "'");
                            clsCommon.ExecuteQuery("delete HOPDONG where ID = " + gvDonVi.GetFocusedDataRow()["ID"].ToString());
                            loadData();
                        }
                    }
                }
                else
                {
                    if (gcDonVi.DataSource != null && ((DataTable)gcDonVi.DataSource).Rows.Count > 0)
                    {
                        if (clsCommon.thongBao("Bạn có chắc chắn muốn xóa dòng này ?", 2) == System.Windows.Forms.DialogResult.Yes)
                        {
                            object o = clsCommon.getCellValue("HOPDONG", "Ma_DT", "Where ID=" + gvDonVi.GetFocusedDataRow()["ID"].ToString());
                            string Ma_HD = o.ToString();
                            clsCommon.deleteRestoreRow("DoanhThu", "Where Ma_HopDong = " + Ma_HD);
                            clsCommon.deleteRestoreRow("HOPDONG", "Where ID = " + gvDonVi.GetFocusedDataRow()["ID"].ToString());
                            loadData();
                        }
                    }
                }
            }
            catch (Exception)
            {

            }
        }

        private void sbtnLoc_Click(object sender, EventArgs e)
        {
            if (sbtnLoc.Tag.Equals("LOC"))
            {
                sbtnLoc.Tag = "BL";
                sbtnLoc.Text = "F5. &Bỏ lọc";
                gvDonVi.OptionsView.ShowAutoFilterRow = true;
            }
            else
            {
                gvDonVi.OptionsView.ShowAutoFilterRow = false;
                sbtnLoc.Tag = "LOC";
                sbtnLoc.Text = "F5. &Lọc";
                loadDatabyDaiLy();
            }
        }

        private void btnDong_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == Keys.F2)
            {
                if (btnSua.Checked)
                {
                    btnThem_Click(null, null);
                }
            }
            else if (keyData == Keys.F3)
            {
                btnSua.Checked = !btnSua.Checked;
            }
            else if (keyData == Keys.F4)
            {
                if (btnSua.Checked)
                {
                    btnXoa_Click(null, null);
                }
            }
            else if (keyData == Keys.F5)
            {
                sbtnLoc_Click(null, null);
            }
            else if (keyData == Keys.F6)
            {
                btnIn_Click(null, null);
            }
            else if (keyData == Keys.F7)
            {
                btnTLyHD_Click(null, null);
            }
            else if (keyData == Keys.F8)
            {
                this.Close();
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }
        private void chkKhoiPhuc_CheckedChanged(object sender, EventArgs e)
        {
            if (chkKhoiPhuc.Checked)
            {
                btnThem.Tag = "KP";
                btnThem.Text = "&Khôi phục";
            }
            else
            {
                btnThem.Tag = "BT";
                btnThem.Text = "F2. &Thêm";
            }
            loadData();
        }

        #region button event
        public int id = 0;
        public object path = "";
        private void btnIn_Click(object sender, EventArgs e)
        {
            try
            {
                object MaLoaiHD = clsCommon.getCellValue("HOPDONG", "Ma_DMLoaiHD", "Where ID=" + gvDonVi.GetFocusedDataRow()["ID"].ToString());
                if (MaLoaiHD != null && MaLoaiHD.ToString() != "")
                {
                    id = (int)clsCommon.Parse(gvDonVi.GetFocusedDataRow()["ID"].ToString(), 0);
                    path = clsCommon.getCellValue("DMLOAIHOPDONG", "URL", "Where Ma_DT='" + MaLoaiHD.ToString() + "'");
                    if (path == null || path.ToString() == "")
                    {
                        if (clsCommon.thongBao("Hợp đồng này chưa được chọn file báo cáo .\nBạn có muốn chọn ngay bây giờ", 2) == DialogResult.Yes)
                        {
                            if (openFileDialog1.ShowDialog() == DialogResult.OK)
                            {
                                id = (int)clsCommon.Parse(gvDonVi.GetFocusedDataRow()["ID"].ToString(), 0);
                                path = openFileDialog1.FileName;
                                clsCommon.updateRowValue("DMLOAIHOPDONG", "URL", "Where Ma_DT='" + gvDonVi.GetFocusedDataRow()["Ma_DMLoaiHD"].ToString() + "'", openFileDialog1.FileName);
                                frmBaoCao frm = new frmBaoCao();
                                frm.ShowDialog();
                            }
                        }
                    }
                    else
                    {
                        frmBaoCao frm = new frmBaoCao();
                        frm.ShowDialog();
                    }
                }
                else
                {
                    if (clsCommon.thongBao("Bạn chưa chọn loại hợp đồng ", 2) == DialogResult.Yes)
                    {
                        id = (int)clsCommon.Parse(gvDonVi.GetFocusedDataRow()["ID"].ToString(), 0);
                        //frmDSLoaiHopDong frm = new frmDSLoaiHopDong(this);
                        //frm.ShowDialog();
                        //loadData();
                    }
                }
            }
            catch (Exception)
            {

            }
        }
        #endregion

        private void gvDonVi_DataSourceChanged(object sender, EventArgs e)
        {
            try
            {
                lblSoLuong.Text = ((DataTable)gcDonVi.DataSource).Rows.Count.ToString();
            }
            catch (Exception)
            {
                lblSoLuong.Text = "0";
            }
        }
        bool isEdit = false;
        private void gvDonVi_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            if (!isEdit)
            {
                try
                {
                    int id = (int)clsCommon.Parse(gvDonVi.GetFocusedDataRow()["ID"].ToString(), 0);
                    if (e.Column.FieldName == "Ma_DT")
                    {
                        string ma_dt = e.Value.ToString();

                        if (hopdong_dal.checkMa_DT(ma_dt))
                        {
                            clsCommon.updateRowValue("HOPDONG", e.Column.FieldName, "Where ID = " + gvDonVi.GetFocusedDataRow()["ID"].ToString(), e.Value);
                        }
                        else
                        {
                            clsCommon.thongBao("Số hợp đồng đã có trong hệ thống, hãy chọn mã khác !", 0);
                            isEdit = true;
                            gvDonVi.SetRowCellValue(e.RowHandle, "Ma_DT", "");
                            isEdit = false;
                        }
                    }
                    else if (e.Column.FieldName == "Ma_DaiLy")
                    {
                        string ma_daiLy = e.Value.ToString();
                        string macanbo = "";
                        string madonvi = "";

                        object o = clsCommon.getCellValue("HOPDONG", "Ma_DMCanBo", "Where id=" + gvDonVi.GetFocusedDataRow()["ID"].ToString());
                        macanbo = o.ToString();
                        object o2 = clsCommon.getCellValue("DMCanBo", "Ma_DMDonVi", "Where Ma_DT='" + macanbo + "'");
                        madonvi = o2.ToString();
                        if (ma_daiLy.Trim().Length == 0)
                        {
                            clsCommon.thongBao("Mã đại lý không được để trống !", 0);
                        }
                        else if (!ma_daiLy.Trim().StartsWith(macanbo))
                        {
                            clsCommon.thongBao("Mã đại lý phải bắt đầu bằng " + macanbo, 0);
                            isEdit = true;
                            //gvDonVi.SetRowCellValue(e.RowHandle, "Ma_DaiLy", "");
                            loadData();
                            isEdit = false;
                        }
                        else
                        {
                            if (hopdong_dal.checkMa_DaiLy(ma_daiLy, id))
                            {
                                clsCommon.updateRowValue("HOPDONG", e.Column.FieldName, "Where ID = " + gvDonVi.GetFocusedDataRow()["ID"].ToString(), e.Value);
                                clsCommon.updateRowValue("DOANHTHU", "Ma_DaiLy", "Where Ma_HopDong = '" + gvDonVi.GetFocusedDataRow()["Ma_DT"].ToString() + "'", e.Value);
                            }
                            else
                            {
                                clsCommon.thongBao("Mã đại lý này đã có trong hệ thống, chọn mã khác !", 0);
                                isEdit = true;
                                gvDonVi.SetRowCellValue(e.RowHandle, "Ma_DaiLy", "");
                                isEdit = false;
                            }
                        }
                    }
                    else if (e.Column.FieldName == "Ten_DaiLy")
                    {
                        clsCommon.updateRowValue("HOPDONG", e.Column.FieldName, "Where ID = " + gvDonVi.GetFocusedDataRow()["ID"].ToString(), e.Value);
                        clsCommon.updateRowValue("DOANHTHU", "Ten_DaiLy", "Where Ma_HopDong = '" + gvDonVi.GetFocusedDataRow()["Ma_DT"].ToString() + "'", e.Value);
                    }
                    else if (e.Column.FieldName == "MST")
                    {
                        if (hopdong_dal.checkMST(e.Value.ToString(), id))
                        {
                            string a = e.Value.ToString();
                            bool flag = true;
                            foreach (char c in a)
                            {
                                if (!char.IsDigit(c))
                                {
                                    flag = false;
                                    clsCommon.thongBao("Mã số thuế chỉ được nhập giá trị là số ", 0);
                                    break;
                                }
                            }
                            if (flag)
                            {
                                clsCommon.updateRowValue("HOPDONG", e.Column.FieldName, "Where ID = " + gvDonVi.GetFocusedDataRow()["ID"].ToString(), e.Value);
                            }
                        }
                        else
                        {
                            if (e.Value.ToString().Trim().Length > 0)
                            {
                                clsCommon.thongBao("Mã số thuế này đã có trong hệ thống, chọn mã khác !", 0);
                            }
                            //isEdit = true;
                            //gvDonVi.SetRowCellValue(e.RowHandle, "MST", "");
                            //isEdit = false;
                            clsCommon.updateRowValue("HOPDONG", e.Column.FieldName, "Where ID = " + gvDonVi.GetFocusedDataRow()["ID"].ToString(), "");
                        }
                    }
                    else if (e.Column.FieldName == "CMT")
                    {
                        if (hopdong_dal.checkCMND(e.Value.ToString(), id))
                        {
                            clsCommon.updateRowValue("HOPDONG", e.Column.FieldName, "Where ID = " + gvDonVi.GetFocusedDataRow()["ID"].ToString(), e.Value);
                        }
                        else
                        {
                            clsCommon.thongBao("Số CMND này đã có trong hệ thống, chọn mã khác !", 0);
                            isEdit = true;
                            gvDonVi.SetRowCellValue(e.RowHandle, "CMT", "");
                            isEdit = false;
                        }
                    }
                    else if (e.Column.FieldName == "Thanh_Ly")
                    {
                        if (gvDonVi.GetFocusedDataRow()["Thanh_Ly"].ToString().ToUpper() == "TRUE" || gvDonVi.GetFocusedDataRow()["Thanh_Ly"].ToString() == "1")
                        {
                            clsCommon.updateRowValue("HOPDONG", "Ma_DMTinhTrang", "Where ID=" + gvDonVi.GetFocusedDataRow()["ID"].ToString(), "05");
                        }
                        else
                        {
                            clsCommon.updateRowValue("HOPDONG", "Ma_DMTinhTrang", "Where ID=" + gvDonVi.GetFocusedDataRow()["ID"].ToString(), "01");
                        }
                    }
                    else if (e.Column.FieldName == "So_CT")
                    {
                        if (hopdong_dal.checkSo_CT(e.Value.ToString(),id))
                        {
                            clsCommon.thongBao("Số phiếu này đã có trong hệ thống, chọn mã khác !", 0);
                            isEdit = true;
                            gvDonVi.SetRowCellValue(e.RowHandle, "So_CT", "");
                            isEdit = false;
                        }
                        else
                        {
                            clsCommon.updateRowValue("HOPDONG", e.Column.FieldName, "Where ID = " + gvDonVi.GetFocusedDataRow()["ID"].ToString(), e.Value);
                        }                            
                    }
                    else
                    {
                        clsCommon.updateRowValue("HOPDONG", e.Column.FieldName, "Where ID = " + gvDonVi.GetFocusedDataRow()["ID"].ToString(), e.Value);
                    }
                    loadData();
                }
                catch (SqlException ex)
                {
                    clsCommon.thongBao(ex.ErrorCode.ToString(), 0);

                }
            }
        }

        private void btnTLyHD_Click(object sender, EventArgs e)
        {
            try
            {
                if (gvDonVi.GetFocusedDataRow()["Thanh_Ly"].ToString().ToUpper() == "FALSE")
                {
                    frmThanhLy frm = new frmThanhLy((int)clsCommon.Parse(gvDonVi.GetFocusedDataRow()["ID"].ToString(), 0), gvDonVi.GetFocusedDataRow()["Ma_DT"].ToString(), gvDonVi.GetFocusedDataRow()["Ma_DaiLy"].ToString() + " - " + gvDonVi.GetFocusedDataRow()["Ten_DaiLy"].ToString());
                    frm.ShowDialog();
                    loadData();
                }
                else
                {
                    if (clsCommon.thongBao("Hợp đồng này đã thanh lý !, tiếp tục ?", 2) == System.Windows.Forms.DialogResult.Yes)
                    {
                        frmThanhLy frm = new frmThanhLy((int)clsCommon.Parse(gvDonVi.GetFocusedDataRow()["ID"].ToString(), 0), gvDonVi.GetFocusedDataRow()["Ma_DT"].ToString(), gvDonVi.GetFocusedDataRow()["Ma_DaiLy"].ToString() + " - " + gvDonVi.GetFocusedDataRow()["Ten_DaiLy"].ToString());
                        frm.ShowDialog();
                        loadData();
                    }
                }
            }
            catch (Exception)
            {

            }

        }

        private void gcDonVi_Click(object sender, EventArgs e)
        {

        }

        private void frmHOPDONG_FormClosing(object sender, FormClosingEventArgs e)
        {
            SqlConnection conn = new SqlConnection(BienTc.connstring);
            DataTable dt = new DataTable();
            try
            {
                SqlCommand cmd = new SqlCommand("select count(*) from HOPDONG where (len(Ma_DT) = 0 or len(Ma_DaiLy) = 0 or Ma_DT is null or Ma_DaiLy is null ) and isPublic = 1", conn);
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                }
                if (cmd.ExecuteScalar().ToString() == "0")
                {
                    e.Cancel = false;
                }
                else
                {
                    if (clsCommon.thongBao("Chưa nhập đủ các thông tin bắt buộc (Số hợp đồng, Mã đại lý, CMND) \n Tiếp tục đóng lại thì các dòng đó sẽ bị xóa, có đóng hay không ?", 2) == System.Windows.Forms.DialogResult.Yes)
                    {
                        cmd = new SqlCommand("delete from HOPDONG where (len(Ma_DT) = 0 or len(Ma_DaiLy) = 0 or len(CMT) = 0 or Ma_DT is null or Ma_DaiLy is null or CMT is null) and isPublic = 1", conn);
                        if (conn.State == ConnectionState.Closed)
                        {
                            conn.Open();
                        }
                        cmd.ExecuteNonQuery();
                        e.Cancel = false;
                    }
                    else
                    {
                        e.Cancel = true;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }

        }
        private bool hihi = false;
        private void gvDonVi_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            //if (!isthemmoi)
            //{
            if (!hihi)
            {
                //Ma_DT
                //Ma_DaiLy
                //CMT
                bool myFlag = true;
                DataRow dr = gvDonVi.GetDataRow(e.PrevFocusedRowHandle);
                string macanbo = "";
                string madonvi = "";
                int id = 0;
                try
                {
                    id = (int)clsCommon.Parse(dr["ID"].ToString(), 0);


                    object o = clsCommon.getCellValue("HOPDONG", "Ma_DMCanBo", "Where id=" + id);
                    macanbo = o.ToString();
                    object o2 = clsCommon.getCellValue("DMCanBo", "Ma_DMDonVi", "Where Ma_DT='" + macanbo + "'");
                    madonvi = o2.ToString();
                    if (dr != null)
                    {
                        if (dr["Ma_DT"].ToString().Trim().Length == 0)
                        {
                            clsCommon.thongBao("Số Hợp đồng không được để trống !", 0);
                            myFlag = false;
                        }
                        else if (dr["Ma_DaiLy"].ToString().Trim().Length == 0)
                        {
                            clsCommon.thongBao("Mã đại lý không được để trống !", 0);
                            myFlag = false;
                        }
                        else if (dr["CMT"].ToString().Trim().Length == 0)
                        {
                            clsCommon.thongBao("CMND không được để trống !", 0);
                            myFlag = false;
                        }
                        else if (!dr["Ma_DaiLy"].ToString().Trim().StartsWith(macanbo))
                        {
                            clsCommon.thongBao("Mã đại lý phải bắt đầu bằng " + macanbo, 0);
                            myFlag = false;
                        }
                        else
                        {
                            myFlag = true;
                        }
                        if (!myFlag)
                        {
                            hihi = true;
                            gvDonVi.FocusedRowHandle = e.PrevFocusedRowHandle;
                            hihi = false;
                        }
                    }
                }
                catch
                { }
            }
            //}
        }

        private void rgThanhly_SelectedIndexChanged(object sender, EventArgs e)
        {
            loadData();
        }

        string madl = "";
        string tendl = "";
        string madv = "";
        string macanbo = "";
        int idHD = 0;
        string mahd = "";
        private void simpleButton2_Click(object sender, EventArgs e)
        {
            if (BienTc.isThanhPho == true || BienTc.isQuanHuyen == true)
            {
                //btnChuyen.Text = "Cập nhật dữ liệu";
                frmUpdateDL frm = new frmUpdateDL();
                frm.ShowDialog();
            }
            else
            {
                if (gvDonVi.RowCount > 0)
                {
                    madl = gvDonVi.GetFocusedDataRow()["Ma_DaiLy"].ToString();
                    tendl = gvDonVi.GetFocusedDataRow()["Ten_DaiLy"].ToString();
                    object o = clsCommon.getCellValue("DMCanBo", "Ma_DMDonVi", "Where Ma_DT='" + gvDonVi.GetFocusedDataRow()["Ma_DMCanBo"].ToString() + "'");
                    madv = o.ToString();
                    macanbo = gvDonVi.GetFocusedDataRow()["Ma_DMCanBo"].ToString();
                    mahd = gvDonVi.GetFocusedDataRow()["Ma_DT"].ToString();
                    idHD = (int)clsCommon.Parse(gvDonVi.GetFocusedDataRow()["ID"].ToString(), 0);
                    DateTime ngayhd = (DateTime)clsCommon.Parse(gvDonVi.GetFocusedDataRow()["Ngay_HD"].ToString(), 4);
                    frmChuyen frm = new frmChuyen(madl, tendl, madv, macanbo, idHD, mahd,ngayhd);
                    frm.ShowDialog();
                    loadData();
                }
            }
        }
    }
}